package net.mingsoft.report_data.biz;

import net.mingsoft.report_data.biz.impl.r.CoastalAreaResponse;
import net.mingsoft.report_data.enums.PeriodEnum;
import net.mingsoft.report_data.enums.ReportPeriodType;

import java.util.List;
import java.util.Map;

/**
 * 报告数据：人口动态变化分析
 * @author gegngfa
 * @date 22/03/14
 */
public interface ZkDataReportPopulationAnalysisBiz {

    /**
     * 生成动态人口分析报告
//     * @param periodEnum 时间段
     * @return 报告HTML
     */
//    String generate(PeriodEnum periodEnum);

    String generate(ReportPeriodType periodType);

    Map<String, Object> getPermanentPopulationData(PeriodEnum periodEnum, Map<String, Object> vars);
    Map<String, Object> getFlowPopulation(Map<String, Object> vars);

    long getForeignPopulation(Map<String, Object> vars);
    Map<String, Object> getForeignPopulationByLocalCity(long total, Map<String, Object> vars);

    Map<String, Object> getPopulationDistributed(Map<String, Object> map);

    Map<String, Object> getSmugglerOdTimesData(Map<String, Object> map);
    Map<String, Object> getSmugglerOdPeriodData(Map<String, Object> map);
    Map<String, Object> getSmugglerOdDistanceData(Map<String, Object> map);
    Map<String, Object> getSmugglerOdArriveAreaData(Map<String, Object> map);
    Map<String, Object> getSmugglerWorkHomeData(Map<String, Object> map);

    List<CoastalAreaResponse> getCoastalWorkHomePopulationData(Map<String, Object> map);
    Map<String, Object> getCoastalActiveAreaData(List<CoastalAreaResponse> responses, Map<String, Object> map);

    Map<String, Object> getCityMigrationData(Map<String, Object> map);

    Map<String, Object> getRealTimeUser(Map<String, Object> map);
    Map<String, Object> getInOutIslandUser(Map<String, Object> map);
    Map<String, Object> getPopulationStructure(Map<String, Object> map);
    Map<String, Object> getAreaJobStructure(Map<String, Object> map);

}
